import { IncomingHttpHeaders } from 'http';
import query from '@dfeidao/atom-nodejs/db/query';
import count from '@dfeidao/atom-nodejs/db/count';
import { systemid, productid } from '../../atom/config';

interface Message {
	filter: {
		company_name: string,
		corporate: string
		pn: number
	}
	// cookie: {
	// 	uk: string;
	// 	[key: string]: string
	// };
	// urls: {
	// 	base: string;
	// 	origin: string;
	// 	url: string;
	// };
	// query: {};
	// params: {};
	// headers: {};
	// captcha: string;
}

interface IWebResult {
	// data: unknown;
	// cookie?: {
	// 	[name: string]: string;
	// } | null;
	// content_type?: string;
	// headers?: {
	// 	[key: string]: string[];
	// };
	// attachment?: string;
	// redirect?: string;
	// status_code?: number;
}

// 表名	enterprise				
// 标题	企业				
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// company_no	企业编号	string	32	√	ⅹ
// business_address	企业地址	string	50	√	ⅹ
// company_name	企业名称	string	50	√	ⅹ
// corporate	企业法人	string	50	√	ⅹ
// high_company_name	上级企业名称	string	32	√	ⅹ
// nrollment_registration	工商注册号	string	50	√	ⅹ
// company_unity_code	企业统一信用代码	string	50	√	ⅹ
// org_code	组织机构代码	string	50	√	ⅹ
// contacts_tel_one	法人联系电话	string	50	√	ⅹ
// contacts_tel_two	企业联系电话	string	50	√	ⅹ
// contact	联系人	string	50	√	ⅹ
// productid	产品ID	string	50	√	ⅹ


export default async function atom(message: Message, action_id: string, session_id: string, headers: IncomingHttpHeaders): Promise<IWebResult> {
	const p = query(action_id, session_id, systemid);
	p.prepare('enterprise', ['company_no', 'company_name', 'corporate', 'high_company_name', 'nrollment_registration', 'company_unity_code', 'org_code', 'contacts_tel_two'], { productid, company_name: { $like: '%' + message.filter.company_name + '%' }, corporate: { $like: '%' + message.filter.corporate + '%' } }, 20, message.filter.pn, [], []);
	const [dt] = await p.exec();

	const { prepare, exec } = count(action_id, session_id, systemid);
	prepare('enterprise', { productid, company_name: { $like: '%' + message.filter.company_name + '%' }, corporate: { $like: '%' + message.filter.corporate + '%' } });
	const [t] = await exec();
	return {
		dt, t
	}


	// const p = query(action_id, session_id, systemid);
	// p.prepare('equipment_kind', ['equipment_kind_no', 'equipment_kind_name'], { productid, equip_type_no: message.filter.equip_type_no, equipment_kind_no: message.filter.equipment_kind_no, equipment_kind_name: { $like: '%' + message.filter.equipment_kind_name + '%' } }, 2, message.filter.pn, message.filter.asc || [], message.filter.desc || []);
	// const [dt] = await p.exec();

	// const { prepare, exec } = count(action_id, session_id, systemid);
	// prepare('equipment_kind', { productid, equip_type_no: message.filter.equip_type_no, equipment_kind_no: message.filter.equipment_kind_no, equipment_kind_name: { $like: '%' + message.filter.equipment_kind_name + '%' } });
	// const [t] = await exec();

	// return {
	// 	dt, t
	// }
}
